/* 
 * Copyright (c) 2006, Bob Breznak
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 * 
 *    * Redistributions of source code must retain the above copyright notice,
 *      this list of conditions and the following disclaimer.
 *    * Redistributions in binary form must reproduce the above copyright
 *      notice, this list of conditions and the following disclaimer in the
 *      documentation and/or other materials provided with the distribution.
 *    
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
 * POSSIBILITY OF SUCH DAMAGE.
 */
package com.iisageek.client;

import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.VerticalPanel;

/**
 * MainPanel is the main panel that loads the dynamic content. One instance is made of it
 * in the application in the lnl class. The purpose is to load dynamic content into the 
 * body of the site based on the link tolkins. 
 * 
 * Singleton.
 * 
 * @author Bob Breznak
 */
public class MainPanel extends VerticalPanel {
	public static final String TEXT    = "text";
	public static final String MEMBERS = "members";
	public static final String WORKORDERS = "workorders";
	
	private static MainPanel singleton;
	
	/**
	 * MainPanel
	 * 
	 * make a new MainPanel. Set the singleton.
	 */
	public MainPanel () {
		singleton = this;
	}
	
	/**
	 * setMode
	 * 
	 * set the mode of the main panel. This generally works out to load one of
	 * the dynamic panels (i.e. MembersPanel or WorkordersPanel)
	 * 
	 * @param section (String) the selection (i.e. dynamic panel) to load
	 * @param mode (String) the mode to put the loaded dynamic panel into
	 */
	public void setMode(String section, String mode) {
		super.clear();
		if(section == TEXT) {
			super.add(new Label(mode));
		} else if (section == MEMBERS) {
			MembersPanel.get().setMode(mode);
			super.add(lnl.get().memberspanel);
		}  else if (section == WORKORDERS) {
			WorkordersPanel.get().setMode(mode);
			super.add(lnl.get().workorderspanel);
		}
	}
	
	/**
	 * get
	 * 
	 * Returns the single instance of MainPanel
	 * 
	 * @return MainPanel
	 */
	public static MainPanel get() {
		return singleton;
	}
}
